package com.browsesoft.dbtools;

import java.util.Iterator;

import org.w3c.dom.Element;

/**
 * 关系型数据库数据转换时的数据源
 */
public class DBSource implements ObjectSource {
	/**
	 * 对应的数据库工具
	 */
	private DBTools dbTools = null;

	/**
	 * 根据表名字段条件取得数据内容，迭代中的内容为Map形式的属性表
	 * 
	 * @param tableName
	 *            表名
	 */
	public Iterator getData(String tableName, String condition) {
		// 组织sql语句，得到结果
		String sql = "select * from " + tableName;
		// 如果有条件
		if (condition != null && !condition.equals("")) {
			// 追加条件
			sql += " where " + condition;
		}
		return dbTools.query(sql);
	}

	/**
	 * 设置数据源环境
	 * 
	 * @param e
	 *            在属性文件中以元素表示的数据源环境
	 */
	public void setEnvironment(Element e) {
		// 根据元素得到一条连接
		BSConnection connection = ConnectionPool.getDBConnection(e);
		// 使用连接构造数据库工具
		this.dbTools = new DBTools(connection);
	}

	/**
	 * 关闭数据源
	 */
	public void close() {
		this.dbTools.close();
	}
}